package service

import (
	"errors"
	"fmt"

	"gitee.com/Yu-eng/Myproject/my-go-blog/dao"
	"gitee.com/Yu-eng/Myproject/my-go-blog/models"
	"gitee.com/Yu-eng/Myproject/my-go-blog/utils"
)

func Login(userName, passWd string) (*models.LoginRes, error) {
	passWd = utils.Md5Crypt(passWd, "yueng") //这里对密码明文进行了md5加密
	user := dao.GetUser(userName, passWd)
	if user == nil {
		//登录失败的逻辑
		return nil, errors.New("登录失败，账号密码错误！")
	}
	//这里处理登录成功的逻辑

	uid := user.Uid
	//生成token jwt技术进行生成 令牌 （令牌的是否过期决定你是否需要重新的登陆）
	//jwt  由A.B.C   :A加密规程，B数据包含过期的时间 C根据A定义的加密对A ，B进行加密
	//生成密钥用于解密 只要密钥不丢  字符串就是安全的
	token, err := utils.Award(&uid)
	if err != nil {
		return nil, fmt.Errorf("token 未能生成 ，%w ", err)
	}
	var lr = &models.LoginRes{}
	return lr, nil
}
